const { Order } = require('./DB/ZPF');
const mongoose = require('./DB/index');

// 清理已完成订单的函数
async function cleanupCompletedOrders() {
  try {
    // 计算3天前的时间
    const threeDaysAgo = new Date();
    threeDaysAgo.setDate(threeDaysAgo.getDate() - 3);
    
    console.log(`开始清理 ${threeDaysAgo.toISOString()} 之前创建的已完成订单...`);
    
    // 查找并删除3天前创建且状态为已完成的订单
    const result = await Order.deleteMany({
      status: 'completed',
      createdAt: { $lt: threeDaysAgo }
    });
    
    console.log(`成功清理了 ${result.deletedCount} 条已完成的订单`);
    
    return result.deletedCount;
  } catch (error) {
    console.error('清理订单失败:', error);
    throw error;
  }
}

// 如果直接运行此脚本，执行清理任务
if (require.main === module) {
  cleanupCompletedOrders()
    .then((count) => {
      console.log(`清理任务完成，共删除 ${count} 条订单`);
      process.exit(0);
    })
    .catch((error) => {
      console.error('清理任务失败:', error);
      process.exit(1);
    });
}

module.exports = { cleanupCompletedOrders };